<?php
namespace app\model\system;

use app\model\BaseModel;

/**
 * 安全事件模型
 */
class SecurityEvents extends BaseModel
{
    // 设置当前模型对应的完整数据表名称（无需前缀，系统会自动加上配置的前缀）
    protected $name = 'security_events';

    // 设置主键名
    protected $pk = 'id';

    // 设置字段信息
    protected $schema = [
        'id' => 'int',
        'event_type' => 'string',
        'event_level' => 'int',
        'event_message' => 'string',
        'event_data' => 'text',
        'ip_address' => 'string',
        'user_agent' => 'string',
        'user_id' => 'int',
        'create_time' => 'int',
    ];

    // 事件类型搜索器
    public function searchEventTypeAttr($query, $value)
    {
        $query->where('event_type', $value);
    }

    // 事件级别搜索器
    public function searchEventLevelAttr($query, $value)
    {
        $query->where('event_level', $value);
    }

    // IP地址搜索器
    public function searchIpAddressAttr($query, $value)
    {
        $query->where('ip_address', 'like', '%' . $value . '%');
    }

    // 关联用户
    public function user()
    {
        return $this->belongsTo('app\model\admin\User', 'user_id', 'id');
    }
}